// For authoring Nightwatch tests, see
// http://nightwatchjs.org/guide#usage

module.exports = {
    'default e2e tests': browser => {
        browser
            .url(process.env.VUE_DEV_SERVER_URL)
            .waitForElementVisible('#app', 5000)
            .assert.urlContains('/home')
            .assert.title('吴太浩')
            .assert.elementPresent('.container')
        browser.expect.element('.visible-pc').to.have.css('display').which.equals('block')
        browser.expect.element('h1').to.have.css('content').which.equals('url("")')
        browser
            .assert.containsText('.menu-item', '首页', '前端', '后端', '安全')
            .assert.containsText('.menu-item span', '发现')
        browser.expect.element('.el-dropdown-menu').to.have.css('display').which.equals('none')
        browser.moveToElement('.menu-item .el-dropdown-link', 5, 5, () => {
            browser.pause('500', () => {
                browser.expect.element('.el-dropdown-menu').to.have.css('display').which.equals('block')
                browser.assert.containsText('.el-dropdown-menu__item', '工具', '资源', '反馈')
            })
        })
    },
    'resizeWindow': browser => {
        browser.resizeWindow(375, 812, () => {
            browser.pause('1000')
            browser.expect.element('.visible-pc').to.have.css('display').which.equals('none')
            browser.expect.element('.visible-mobil').to.have.css('display').which.equals('block')
            browser.expect.element('.bottom-nav').to.have.css('display').which.equals('block')
        })
    },
    'maximizeWindow': browser => {
        browser.maximizeWindow(() => {
            browser.expect.element('.visible-pc').to.have.css('display').which.equals('block')
            browser.expect.element('.visible-mobil').to.have.css('display').which.equals('none')
            browser.expect.element('.bottom-nav').to.have.css('display').which.equals('none')
            browser.click('.search input', () => {
                browser.pause('1000')
                browser.setValue('input', 'DwyaneWade')
            })
        })
    },
    'login': browser => {
        browser.click('.btn-signin', () => {
            browser.pause('1000')
            browser.assert.elementPresent('.el-dialog__wrapper')
            browser.assert.containsText('.el-button', '注册新账号', '忘记密码', '登录')
            browser.click('.el-dialog__body input[type="text"]', () => {
                browser.pause('1000')
                browser.setValue('.el-dialog__body input[type=text]', 'DwyaneWade')
            })
            browser.click('.el-dialog__body input[type="password"]', () => {
                browser.pause('1000')
                browser.setValue('.el-dialog__body input[type=password]', 'DwyaneWade')
            })
        })
        browser.click('.el-dialog__body .success', () => {
            browser.pause('1000', () => {
                browser
                    .assert.elementNotPresent('.el-dialog__wrapper')
                    .assert.elementNotPresent('.btn-signin')
                    .assert.elementNotPresent('.btn-signup')
            })
        })
    },
    'create article': browser => {
        browser.assert.containsText('.menu-item button[type=button]', '创建')
        browser.click('.menu-item button[type=button]', () => {
            browser.pause('100')
        })
        browser.click('.el-dropdown-menu__item a[href="#/rich"]')
        browser.pause('1000')
        browser.click('.menu-item button[type=button]')
        browser.url('http://localhost:8081/#/rich')
        browser.pause('5000')
        browser.click('.menu a[href="#/home"]', () => {
            browser.url('http://localhost:8081/#/home')
            browser.pause('1000')
        })
    },
    'show new detail': browser => {
        browser.click('a[href="#/news/1"]', () => {
            browser.url('http://localhost:8081/#/news/1')
            browser.pause('5000')
        })
    },
    'log out': browser => {
        browser.click('.el-col-6 .menu-item img')
        browser.pause('1000')
        browser.click('.el-col-6 .menu-item img')
        browser.url('http://localhost:8081/#/home')
        browser.end()
    }
}
